被問過一個問題:「既然要在 GCP 上跑 agent,為什麼不用 Vertex AI Agent Runtime,而要用 Cloud Run?」
先講一個容易混淆的事:Agent Runtime 的前身是 Agent Engine,已經改名。查資料時兩個名字都會遇到。
這篇的內容全部是文件層認知,我沒有實跑過遷移。 下面每一條都請當成「查到的限制」而不是「測到的結果」。之所以還是寫出來,是因為這幾條會讓照著 Cloud Run 直覺去做的人直接撞牆。
沒有 gcloud 子命令。
Agent Runtime 沒有 gcloud CLI 介面。部署只能用 agents-cli deploy,查詢要走 Python 的 vertexai.Client SDK。
這點會打到所有既有的自動化。你的 CI 腳本、你的部署 alias、你熟悉的 gcloud run services describe,全部要重寫。
Dockerfile 是硬需求。
它是容器部署但不提供 --source 自動偵測。映像由 Agent Engine 依專案的 Dockerfile 建置,沒有 Dockerfile 就失敗。
Cloud Run 那種「指著原始碼目錄就會自己想辦法」的體驗在這裡沒有。專案沒有 Dockerfile 的話要先跑:
agents-cli scaffold enhance . --deployment-target agent_runtime
不能匿名存取。
沒有 --allow-unauthenticated 的對應物。agent 之間互打要帶 IAM token。
這對 A2A 情境影響直接:你的 orchestrator 抓 agent card、送 message/send,每一發都要處理認證。
部署要 5 到 10 分鐘。 一律加 --no-wait 再用 agents-cli deploy --status 輪詢,否則 Cloud Shell 斷線就白等。
沒有 revision rollback。 Cloud Run 那種「切回上一版」的操作不存在,只能改碼重新部署。這在出事的時候是很大的差別。
我的判斷是:如果目的是學 A2A 協定,留在 Cloud Run 更省事。
Agent Runtime 提供的是託管的 session 管理、內建的可觀測性、與 Vertex AI 生態的整合。這些在系統成熟之後有價值,但在你還在搞懂協定怎麼運作的階段,它們只是額外的變數。
反過來說,如果你已經跑起來了、開始煩惱 session 存哪、trace 怎麼看,那時候再評估遷移比較合理。
被問「能不能搬到 Agent Platform」時,先確認三件事再估時間:
Dockerfile
這三條都是「不知道就會白花半天」的類型。